Devices may perform rapid transmission of data between end systems over a data communication network using multiple paths and low-latency handling. Many data communication systems and high level data communication protocols offer the convenient communication abstractions of reliable data transport, and provide rate control, i.e., they automatically adjust their packet transmission rate based on network conditions. Their traditional underlying implementations in terms of lower level packetized data transports, such as the ubiquitous Transport Control Protocol (TCP), suffer when at least one of the following conditions occurs: (a) the connection between the sender(s) and the receiver(s) has a large round-trip time (RTT); (b) the amount of data is large and the network suffers from bursty and transient losses.
One widely used reliable transport protocol is the Transport Control Protocol (TCP). TCP is a point to point packet control scheme in common use that has an acknowledgment mechanism. TCP works well for one-to-one reliable communications when there is little loss between the sender and the recipient and the RTT between the sender and the recipient is small. However, the throughput of the TCP drops drastically when there is even very little loss, or when there is any significant latency between the sender and the recipient.
Using TCP, a sender transmits ordered packets and the recipient acknowledges receipt of each packet. If a packet is lost, no acknowledgment will be sent to the sender and based on reception of either later received packets or on a timeout the sender will resend the packet. With protocols such as TCP, the acknowledgment paradigm allows packets to be lost without total failure, since lost packets can just be retransmitted, either in response to a lack of acknowledgment or in response to an explicit request from the recipient.
TCP provides both reliability control and rate control. That is, devices implementing TCP ensure that all of the original data is delivered to receivers and automatically adjust the packet transmission rate based on network conditions such as congestion and packet loss. With TCP, the reliability control protocol and the rate control protocol are intertwined and not separable. Moreover, TCP's throughput performance as a function of increasing RTT and packet loss is far from optimal.